package de.jmda.gen.java;

import javax.validation.constraints.NotNull;

import de.jmda.gen.CompoundGenerator;
import de.jmda.gen.GeneratorException;

public interface MethodSignatureGenerator extends CompoundGenerator
{
	@NotNull MethodNameGenerator getMethodNameGenerator();
	@NotNull MethodParametersGenerator getMethodParametersGenerator();
	
	void setMethodNameGenerator(@NotNull MethodNameGenerator generator);
	void setMethodParametersGenerator(@NotNull MethodParametersGenerator generator);
	
	/**
	 * convenience method for {@link #setMethodNameGenerator(MethodNameGenerator)}
	 *
	 * @param name
	 */
	void setMethodName(@NotNull String name);
	
	@NotNull String getMethodName() throws GeneratorException;
}